function isEmpty(s){
    let str = (s || '').trim();
    if(!str.length) return true;
    return false;
}

function validateMobile(mobile){
    if(isEmpty(mobile)) return '请填写手机号码';
    if(!/^0?(13[0-9]|14[0-9]|15[0-9]|16[0-9]|17[0-9]|18[0-9]|19[0-9])[0-9]{8}$/.test(mobile)) return '手机号码格式错误';
    return null;
}

function validateEmail(email){
    if(isEmpty(email)) return '请填写邮箱地址';
    if(!/^[\w\d\-\.]+@[a-zA-Z0-9\-\.]+\.[a-zA-Z]+$/.test(email)) return '邮箱格式错误';
    return null;
}

function validatePassword(password){
    if(isEmpty(password)) return '请填写密码';
    if(!/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{6,20}$/.test(password)) return '密码长度为6到20位,必须包含大小写字母及数字';
    return null;
}


function validateTransPassword(password){
    if(isEmpty(password)) return '请填写投资密码';
    if(!/^[0-9]{6}$/.test(password)) return '密码长度为6位数字';
    return null;
}

function validateCaptch(captch){
    if(isEmpty(captch)) return '请填写验证码';
    if(!/^[a-zA-Z0-9]{4}$/.test(captch)) return '验证码错误';
    return null;
}

function validateSmsCode(code){
    if(isEmpty(code)) return '请短信验证码';
    if(!/^\d{4}$/.test(code)) return '短信验证码错误';
    return null;
}

function validateSmsLoginCode(code){
    if(isEmpty(code)) return '请短信验证码';
    if(!/^\d{6}$/.test(code)) return '短信验证码错误';
    return null;
}

function validateChineseChar(char, label){
    if(isEmpty(char)) return '请填写' + label;
    if(!/^[\u4E00-\u9FFF\u3400-\u4DFF]+$/.test(char)) return label + '错误，请使用中文填写';
    return null;
}

function validateChineseName(char, label){
    if(isEmpty(char)) return '请填写' + label;
    if(char.length > 4) return '姓名不得大于四位';
    if(!/^[\u4E00-\u9FFF\u3400-\u4DFF]+$/.test(char)) return label + '错误，请使用中文填写';
    return null;
}

function validateAccount(account){
    if(isEmpty(account)) return '请填写手机号码/邮箱'
    if(/^\d+$/.test(account)){
        return validateMobile(account);
    }else if(account.indexOf('@') > -1){
        return validateEmail(account);
    }else{
        return '账号必须为手机号码或邮箱'
    }
    return null;
}

function validateMoney(char){
    if(isEmpty(char)) return '请填写金额';
    if(!/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/.test(char)) return '金额格式错误，最多2位小数';
    return null;
}

function validateIdCardNo(char){
    if(isEmpty(char)) return '请填写身份证号码';
    if(!/(^\d{15}$)|(^\d{17}(\d|x)$)/i.test(char)) return '身份证号格式错误';
    return null;
}

function validateNumber(char){
    if(isEmpty(char)) return '请填写数字';
    if(!/^([1-9]\d*|[0]{1,1})$/.test(char)) return '请填写整数';
    return null;
}

export default {
    validateMobile,
    validateEmail,
    validatePassword,
    validateCaptch,
    validateSmsCode,
    validateSmsLoginCode,
    validateChineseChar,
    validateAccount,
    validateChineseName,
    validateMoney,
    validateIdCardNo,
    validateTransPassword,
    validateNumber
}
